package decorate.formGreenHand;

import decorate.formGreenHand.impl.Shape;

/**
 * 形状：装饰类
 */
public class ShapeDecorator implements Shape {

    /**
     * 写一个和线程类似的东西,想进一步了解线程，但是好像没有找到什么关联
     * TODO 我觉得我看懂了，或者说看明白了这个设计模式是怎样设计的，也大致看明白了是如何设计的，我也看懂了在框架中是如何使用的，但是我想不通框架中为什么要这样用，感觉框架设计的又一点复杂和无用
     */
    protected Shape target;

    public ShapeDecorator() {
    }

    public ShapeDecorator(Shape decoratorShape) {
        this.target = decoratorShape;
    }

    @Override
    public void draw() {
        if (target != null){
            target.draw();
        }
    }
}
